package com.data.dao;

import java.util.List;

import com.base.dao.TemplateDao;
import com.data.entity.StateMin;

public interface StateMinDao extends TemplateDao<StateMin, Integer>{
	/**
	 * 根据主键查询设备状态半小时记录
	 * @param id
	 * @return
	 */
	StateMin getStateMinById(long id);
	/**
	 * 查询不同时间段内设备状态记录
	 * @param equId
	 * @param stateType
	 * @param shiftTime
	 * @param currentTime
	 * @return
	 */
	List<StateMin> getStateMins(int equId,String stateType,String shiftTime,String currentTime);
	
	/**
	 * 根据设备id和归属时间查询是否存已保存此记录
	 * @param equId
	 * @param belongTime
	 * @param stateType
	 * @return
	 */
	StateMin getStateMinByDate(int equId,String stateType,String belongTime);
	/**
	 * 根据主键删除
	 * @param id
	 */
	void deleteByMinId(long id);
	/**
	 * 获取当天的所有半小时该状态记录
	 * @param equId
	 * @param stateType
	 * @param belongTime(如:2016-06-16)
	 * @return
	 */
	List<StateMin> getStateMinsByDay(int equId,String stateType,String belongTime);
	
	/**
	 * 获取时间区间内的状态总时长
	 * @param equId
	 * @param stateType
	 * @param startDate(如：2016-07-29 08:00:00)
	 * @param endDate(如：2016-07-29 16:00:00)
	 * @return
	 */
	Double getDurationByTime (int equId,String stateType,String startDate,String endDate);
	/**
	 * 查询某状态的持续时间
	 * @param equId
	 * @param stateType
	 * @param belongDate
	 * @param isLow 是否最低值  是(Y) 否(N)
	 * @return
	 */
	List<StateMin> getDurationByStateType(int equId,String stateType,String belongDate,String isLow);

}
